import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.*;

import java.util.Scanner;
import java.util.stream.Stream;

@TestMethodOrder (MethodOrderer.OrderAnnotation.class)
public class JunitTest {

    @Order (2)
    @Test
    public void test1(){
        System.out.println ("这是第一个测试用例");
    }

    @Order(1)
    @Test
    public void test2(){
        System.out.println ("这是第二个测试用例");
    }

    @AfterAll
    static void end(){
        System.out.println ("结束测试");
    }

    @BeforeAll
    static void start(){
        System.out.println ("开始测试");
    }

//    @BeforeEach
//    void s(){
//        System.out.println ("执行一条测试用例");
//    }
//
//    @AfterEach
//    void e(){
//        System.out.println ("结束一条测试用例");
//    }

    //单参数
    @ParameterizedTest
    @ValueSource(ints={1,2,3,4})
    void test03(int x){
        System.out.println ("接受的参数x:"+x);
    }

    //多参数
    //加上test运行后，会一次正常，一次报错
    @ParameterizedTest
    @CsvSource({"'张三',18"})
    void test04(String name,int age){
        System.out.println ("名字是："+name+" 年龄是："+age);
    }

    //csv文件，储存各种包括数值，文本之类的数据
    //多参数，读取文件中的数据，进行操作
    @ParameterizedTest
    @CsvFileSource(resources="test.csv")
    //输出的数据类型依赖于传进来的参数
    void test05(String name,int age){
        System.out.println ("名字是："+name+" 年龄是："+age);
    }


}
